import Dict from '@/Utils/dict'
import { roleStore } from '@/stores/role'
import { headersStore } from '@/stores/apiHeader'
/**
 * rulesName 在财务字典规则 + 当前header参数 是否合法
 * rulesName 类型 字符串与数组；合法的规则名称
 * **/
export const checkRule = (rulesName) => {
  if (!rulesName) return false // 不传规则名称 false
  const { finance: rules } = Dict // 财务相关规则字典
  const { financeLevel } = roleStore() // headers 里的财务规则
  const { month: headerMonth, every_code } = headersStore() // headers 里的 月份、各区对比值
  const arr = Array.isArray(rulesName) ? rulesName : [rulesName] // 参数非数组转为数组
  return arr.some((item) => {
    const curRules = rules[item]
    if (!curRules) return false // 不合法规则名称 返回 false
    const { level, year, month, everyCode } = curRules
    const levelCheck = level.includes(financeLevel) // 根据级别校验 全球 区域 国家
    const yearOrMonth = headerMonth === '00' ? year : month // 用户操作当前为年时 校验规则里的年 否则
    const everyCheck = every_code === '' ? everyCode.includes(88) : everyCode.includes(Number(every_code)) // 非各区对比 返回 true 否则根据 字典里判断
    return levelCheck && yearOrMonth && everyCheck
  })
}
